搭建Hadoop+Python的大数据开发环境

您所在的位置:网站首页 python 集群 搭建Hadoop+Python的大数据开发环境

搭建Hadoop+Python的大数据开发环境

#搭建Hadoop+Python的大数据开发环境| 来源: 网络整理| 查看: 265

实验环境

CentOS镜像为CentOS-7-x86_64-Everything-1804.iso

虚机配置 节点名称 IP地址 子网掩码 CPU/内存 磁盘 安装方式 master 192.168.204.101 255.255.255.0 1核心/4GB 100GB GNOME Desktop slave1 192.168.204.111 255.255.255.0 1核心/2GB 100GB Minimal Install slave2 192.168.204.112 255.255.255.0 1核心/2GB 100GB Minimal Install 软件清单 软件名称 版本号 Hadoop 2.8.1 Hive 2.1.1 Sqoop 1.4.6 Java 1.8.0_131 MariaDB 5.5.60 Python 2.7.5/3.6.2 配置基本环境 安装虚拟机

master节点以GNOME Desktop安装 slave节点以Minimal Install安装

用户名 密码 root hadoop hadoop hadoop 配置网络

该项同时在master、slave1、slave2节点配置。 该项使用root身份配置。

检查网络连通性

[root@localhost ~]# ping 114.114.114.114 -c 4

修改dns地址

[root@localhost ~]# vi /etc/resolv.conf #修改为 nameserver 223.5.5.5

更换阿里yum源 [1]

mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup curl -o /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo yum makecache

更换阿里pip源 [2]

mkdir ~/.pip/ vim ~/.pip/pip.conf

写入以下内容

[global] index-url = https://mirrors.aliyun.com/pypi/simple/

yum方式安装基本工具

[root@localhost ~]# yum install -y tree vim epel-* net-tools ntpdate wget

编辑网络配置

[root@localhost ~]# vim /etc/sysconfig/network-scripts/ifcfg-ens33

根据虚机配置表配置以下信息

TYPE="Ethernet" UUID="17cd99b5-4414-4f6e-b7a3-e573104dd306" ONBOOT="yes" DEVICE="ens33" NAME="ens33" BOOTPROTO="static" IPADDR=192.168.204.101 NETMASK=255.255.255.0 GATEWAY=192.168.204.2 DNS1=223.5.5.5

保存退出后,重启网络服务

[root@localhost ~]# systemctl restart network

查看网络信息

[root@localhost ~]# ifconfig 配置防火墙

该项同时在master、slave1、slave2节点配置。 该项使用root身份配置。

关闭并禁止自动启动防火墙

[root@localhost ~]# systemctl stop firewalld [root@localhost ~]# systemctl disable firewalld

禁止SELinux

[root@localhost ~]# setenforce 0

配置禁止开机自启SELinux

[root@localhost ~]# vim /etc/selinux/config

将SELINUX=enforcing改成SELINUX=disabled

修改主机名

该项同时在master、slave1、slave2节点配置。 该项使用root身份配置。

修改network配置文件

[root@localhost ~]# vim /etc/hostname

主节点修改为master,从节点相应修改为slave1,slave2

输入以下命令(从节点修改为相应名称)

[root@localhost ~]# hostname master

重启虚机

[root@localhost ~]# reboot

重新进入控制台,检验修改

[root@master ~]# hostname 修改hosts文件

该项同时在master、slave1、slave2节点配置。 该项使用root身份配置。

输入以下命令,配置hosts文件

[root@master ~]# vim /etc/hosts

根据实验环境,添加以下条目至hosts文件

192.168.204.101 master 192.168.204.111 slave1 192.168.204.112 slave2

检查hosts是否生效

ping master ping slave1 ping slave2

配置时钟同步

该项同时在master、slave1、slave2节点配置。 该项使用root身份配置。

配置定时任务

crontab -e #输入以下配置,设置同步时间的定时任务 0 1 * * * /usr/sbin/ntpdate cn.pool.ntp.org

使用下列命令,使时间立即同步

/usr/sbin/ntpdate cn.pool.ntp.org

配置免密登录

该项使用hadoop用户身份配置。 该项按照步骤依次在各个节点配置。

主节点master 在主节点master输入以下命令生成秘钥

[hadoop@master ~]$ ssh-keygen -t rsa

复制公钥文件

[hadoop@master ~]$ cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys

从节点slave1 在从节点slave1输入以下命令生成秘钥,并将秘钥发送给master

[hadoop@slave1 ~]$ ssh-keygen -t rsa [hadoop@slave1 ~]$ cp ~/.ssh/id_rsa.pub ~/.ssh/slave1-id_rsa.pub [hadoop@slave1 ~]$ scp ~/.ssh/slave1-id_rsa.pub hadoop@master:~/ [hadoop@slave1 ~]$ rm -rf ~/.ssh/slave1-id_rsa.pub

从节点slave2 在从节点slave2输入以下命令生成秘钥,并将秘钥发送给master

[hadoop@slave2 ~]$ ssh-keygen -t rsa [hadoop@slave2 ~]$ cp ~/.ssh/id_rsa.pub ~/.ssh/slave2-id_rsa.pub [hadoop@slave2 ~]$ scp ~/.ssh/slave2-id_rsa.pub hadoop@master:~/ [hadoop@slave2 ~]$ rm -rf ~/.ssh/slave2-id_rsa.pub

主节点master 复制从节点的秘钥文件,追加到authorized_keys文件中

[hadoop@master ~]$ cat ~/slave1-id_rsa.pub >> ~/.ssh/authorized_keys [hadoop@master ~]$ cat ~/slave2-id_rsa.pub >> ~/.ssh/authorized_keys

修改authorized_keys文件权限,并复制到从节点

[hadoop@master ~]$ chmod 600 ~/.ssh/authorized_keys [hadoop@master ~]$ scp ~/.ssh/authorized_keys hadoop@slave1:~/ [hadoop@master ~]$ scp ~/.ssh/authorized_keys hadoop@slave2:~/

从节点slave1 修改authorized_keys文件权限,并复制到ssh文件夹

[hadoop@slave1 ~]$ chmod 600 ~/authorized_keys [hadoop@slave1 ~]$ cp ~/authorized_keys ~/.ssh

从节点slave2 修改authorized_keys文件权限,并复制到ssh文件夹

[hadoop@slave2 ~]$ chmod 600 ~/authorized_keys [hadoop@slave2 ~]$ cp ~/authorized_keys ~/.ssh

主节点master 查看authorized_keys文件内容

[hadoop@master ~]$ cat ~/.ssh/authorized_keys

测试主节点master到从节点的登录情况

[hadoop@master ~]$ ssh slave1 [hadoop@master ~]$ ssh slave2

导入软件包

主节点master 创建软件包目录、数据目录、代码目录

mkdir ~/software mkdir ~/data mkdir ~/code

将软件包上传至~/software目录

将jdk复制到从节点

cp ~/software/jdk-*.tar.gz ~/ scp ~/jdk-*.tar.gz hadoop@slave1:~/ scp ~/jdk-*.tar.gz hadoop@slave2:~/

安装JDK

该项同时在master、slave1、slave2节点配置。 该项使用root身份配置。

解压安装java

mkdir /usr/java cp /home/hadoop/jdk-*.tar.gz /usr/java cd /usr/java tar -xzvf jdk-*.tar.gz

配置环境变量

vim /home/hadoop/.bash_profile # 追加以下内容 #JAVA export JAVA_HOME=/usr/java/jdk1.8.0_131 #注意替换版本号 export PATH=$JAVA_HOME/bin:$PATH

刷新环境变量

source /home/hadoop/.bash_profile

查看Java版本

java -version 安装Hadoop

该项仅在master主节点配置 该项使用hadoop身份配置。

解压Hadoop安装包

解压安装包

cp ~/software/hadoop-*.tar.gz ~/ cd ~ tar -xzvf hadoop-*.tar.gz cd hadoop-* 配置Hadoop 配置环境变量 hadoop-env.sh

输入以下命令,配置hadoop配置文件中的jdk路径

vim /home/hadoop/hadoop-*/etc/hadoop/hadoop-env.sh

将export JAVA_HOME={JAVA_HOME} 修改为export JAVA_HOME=/usr/java/jdk1.8.0_131 注意版本号

配置环境变量 yarn-env.sh

输入以下命令,配置yarn配置文件中的jdk路径

vim /home/hadoop/hadoop-*/etc/hadoop/yarn-env.sh

将export JAVA_HOME=/home/y/libexec/jdk1.6.0/ 修改为export JAVA_HOME=/usr/java/jdk1.8.0_131/

配置核心组件 core-site.xml

输入以下命令

vim /home/hadoop/hadoop-*/etc/hadoop/core-site.xml

用以下文本替代

fs.defaultFS hdfs://master:9000 hadoop.tmp.dir /home/hadoop/hadoopdata 配置 hdfs-site.xml

输入以下命令

vim /home/hadoop/hadoop-*/etc/hadoop/hdfs-site.xml

用以下文本替代

dfs.replication 1 配置 yarn-site.xml

输入以下命令

vim /home/hadoop/hadoop-*/etc/hadoop/yarn-site.xml

用以下文本替代

yarn.nodemanager.aux-services mapreduce_shuffle yarn.resourcemanager.address master:18040 yarn.resourcemanager.scheduler.address master:18030 yarn.resourcemanager.resource-tracker.address master:18025 yarn.resourcemanager.admin.address master:18141 yarn.resourcemanager.webapp.address master:18088 配置 mapred-site.xml

输入以下命令

vim /home/hadoop/hadoop-*/etc/hadoop/mapred-site.xml

写入以下文本

mapreduce.framework.name yarn 配置slaves文件

输入以下命令

vim /home/hadoop/hadoop-*/etc/hadoop/slaves

替换成以下内容

slave1 slave2 复制到从节点

输入以下命令,将master的hadoop程序复制到从节点

scp -r /home/hadoop/hadoop-2.8.1/ hadoop@slave1:~/ scp -r /home/hadoop/hadoop-2.8.1/ hadoop@slave2:~/

配置Hadoop环境变量

输入以下命令,添加环境变量

vim ~/.bash_profile #追加以下内容 #HADOOP export HADOOP_HOME=/home/hadoop/hadoop-2.8.1 export PATH=$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$PATH

刷新环境变量

source ~/.bash_profile

创建数据目录

该项仅在master主节点配置 该项使用hadoop身份配置。

在master,slave上,创建数据目录

mkdir /home/hadoop/hadoopdata

在master上,执行格式化HDFS文件系统命令

hdfs namenode -format

出现以下信息,表示格式化成功

启动Hadoop集群 执行以下命令,启动Hadoop集群 start-all.sh

Hadoop启动过程如下

在master上执行以下命令,查看进程 jps

正常情况下,会出现如下信息:

在slave上执行以下命令,查看进程 jps

正常情况下,会出现如下信息:

查看Web UI

浏览器输入http://master:50070/,检查NameNode和DataNode是否正常启动

浏览器输入http://master:18088/,检查Yarn是否正常

验证Hadoop——跑一个Demo

Hadoop自带有PI示例的jar包,执行以下命令调用集群进行计算:

hadoop jar /home/hadoop/hadoop-2.8.1/share/hadoop/mapreduce/hadoopmapreduce-examples-2.8.1.jar pi 10 10

运行过程

运行结果如下

验证HDFS

该项仅在master主节点配置 该项使用hadoop身份配置。

在命令行依次输入以下命令

hdfs dfs -ls / hdfs dfs -mkdir /data hdfs dfs -ls /

可查看刚刚创建的目录

编辑一个文本文件

mkdir /home/hadoop/data/words vim /home/hadoop/data/words/word.txt

写入以下内容

hadoop hello world hello hadoop hello world hadoop hello

将本地文件上传至HDFS

hdfs dfs -mkdir /data/words hdfs dfs -put /home/hadoop/data/word/*.txt /data/words/ hdfs dfs -ls /data/words/ hdfs dfs -cat /data/words/*.txt

安装Hive

该项仅在master主节点配置 该项使用root身份配置。

解压Hive安装包

解压安装Hive

cp /home/hadoop/software/apache-hive-*-bin.tar.gz /home/hadoop/ cd /home/hadoop tar -xzvf /home/hadoop/apache-hive-*-bin.tar.gz cd /home/hadoop/apache-hive-*-bin 安装MariaDB

安装配置MariaDB

yum install mariadb-server -y

启动MariaDB

systemctl start mairadb systemctl enable mairadb

输入以下命令,修改MariaDB密码

mysql_secure_installation

登录数据库,添加数据

mysql -uroot -p123456

输入以下SQL语句,添加mysql用户

grant all on *.* to hadoop@'%' identified by 'hadoop'; grant all on *.* to hadoop@'localhost' identified by 'hadoop'; grant all on *.* to hadoop@'master' identified by 'hadoop'; flush privileges; create database hive_1; quit;

配置Hive

该项仅在master主节点配置 该项使用hadoop身份配置。

输入以下命令,修改Hive配置 vim /home/hadoop/apache-hive-*-bin/conf/hive-site.xml

添加以下配置信息

hive.metastore.local true javax.jdo.option.ConnectionURL jdbc:mysql://master:3306/hive_1?characterEncoding=UTF-8 javax.jdo.option.ConnectionDriverName com.mysql.jdbc.Driver javax.jdo.option.ConnectionUserName hadoop javax.jdo.option.ConnectionPassword hadoop 将mysql的java connector复制到依赖库中 cd ~/software/ tar -xzvf mysql-connector-java-5.1.27.tar.gz cd ~/software/mysql-connector-java-5.1.27 cp mysql-connector-java-5.1.27-bin.jar ~/apache-hive-*bin/lib/ 将hive添加至环境变量 vim ~/.bash_profile #添加以下内容 #HIVE export HIVE_HOME=/home/hadoop/apache-hive-2.1.1-bin export PATH=$PATH:$HIVE_HOME/bin

刷新环境变量

source ~/.bash_profile

初始化hive元数据库 [3]

schematool -dbType mysql -initSchema 启动并验证Hive

输入以下命令,启动hive

hive

正常启动如下:

输入以下HQL语句

show databases; create database hadoop_data; show databaes;

安装Sqoop

该项仅在master主节点配置 该项使用hadoop身份配置。

解压Sqoop安装包 cp ~/software/sqoop-1.4.6.bin__hadoop-2.0.4-alpha.tar.gz ~/ cd ~ tar -xzvf sqoop-1.4.6.bin__hadoop-2.0.4-alpha.tar.gz cd ~/sqoop-1.4.6.bin__hadoop-2.0.4-alpha 配置MySQL连接器 cd ~/software/mysql-connector-java-5.1.27 cp mysql-connector-java-5.1.27-bin.jar ~/sqoop-1.4.6.bin__hadoop-2.0.4-alpha/lib/ 配置Sqoop 输入以下命令,编辑配置文件 cd ~/sqoop-1.4.6.bin__hadoop-2.0.4-alpha/conf/ cp sqoop-env-template.sh sqoop-env.sh

替换为以下内容

#Set path to where bin/hadoop is available export HADOOP_COMMON_HOME=/home/hadoop/hadoop-2.8.1 #Set path to where hadoop-*-core.jar is available export HADOOP_MAPRED_HOME=/home/hadoop/hadoop-2.8.1 #set the path to where bin/hbase is available #export HBASE_HOME= #Set the path to where bin/hive is available export HIVE_HOME=/home/hadoop/apache-hive-2.1.1-bin

替换时注意版本号

配置环境变量

输入以下命令,修改环境变量

vim ~/.bash_profile #追加以下内容 #SQOOP export SQOOP_HOME=/home/hadoop/sqoop-1.4.6.bin__hadoop-2.0.4-alpha export PATH=$SQOOP_HOME/bin:$PATH

刷新环境变量

source ~/.bash_profile

此时,~/.bash_profile文件的内容如下

启动并验证Sqoop

执行以下命令,查看安装是否成功

sqoop help

正确情况,如图所示

安装Python3.X [4]

该项在各个节点使用root用户配置

安装依赖包 yum install -y zlib-devel bzip2-devel \ openssl-devel ncurses-devel sqlite-devel \ readline-devel tk-devel gcc make 备份原Python可执行文件 mv /usr/bin/python /usr/bin/python.bak 下载并解压python3.x wget https://www.python.org/ftp/python/3.6.2/Python-3.6.2.tar.xz tar -xvJf Python-3.6.2.tar.xz cd Python-3.* 编译安装 ./configure prefix=/usr/local/python3 make && make install 创建软连接

创建软连接

ln -s /usr/local/python3/bin/python3 /usr/bin/python ln -s /usr/local/python3/bin/python3 /usr/bin/python3 ln -s /usr/local/python3/bin/python3 /usr/bin/python3.6

查看/usr/bin/目录下的python程序

ls -l /usr/bin/python*

输入命令查看各程序版本

python -V python2 -V python2.7 -V python3 -V python3.6 -V

修改对python2的依赖 修改yum配置 vim /usr/bin/yum

将#!/usr/bin/python修改为#!/usr/bin/python2

修改urlgrabber-ext-down配置 vim /usr/libexec/urlgrabber-ext-down

将#!/usr/bin/python修改为#!/usr/bin/python2

配置pip3 mv /usr/bin/pip /usr/bin/pip.bak ln -s /usr/local/python3/bin/pip3 /usr/bin/pip ln -s /usr/local/python3/bin/pip3 /usr/bin/pip3

查看修改情况

ls -l /usr/bin/pip*

一键安装脚本

centos7 安装Python3.x的脚本

网速略差时不建议使用

#!/bin/bash yum install -y zlib-devel bzip2-devel openssl-devel \ ncurses-devel sqlite-devel readline-devel tk-devel gcc make mv /usr/bin/python /usr/bin/python.bak cd ~ wget https://www.python.org/ftp/python/3.6.2/Python-3.6.2.tar.xz tar -xvJf Python-3.6.2.tar.xz cd ~/Python-3.6.2/ ./configure prefix=/usr/local/python3 make && make install ln -s /usr/local/python3/bin/python3 /usr/bin/python ln -s /usr/local/python3/bin/python3 /usr/bin/python3 ln -s /usr/local/python3/bin/python3 /usr/bin/python3.6 ls -l /usr/bin/python* python -V python2 -V python2.7 -V python3 -V python3.6 -V sed -i 's/#!\/usr\/bin\/python/#!\/usr\/bin\/python2/g' /usr/bin/yum sed -i 's/#!\/usr\/bin\/python/#!\/usr\/bin\/python2/g' /usr/libexec/urlgrabber-ext-down mv /usr/bin/pip /usr/bin/pip.bak ln -s /usr/local/python3/bin/pip3 /usr/bin/pip ln -s /usr/local/python3/bin/pip3 /usr/bin/pip3 ls -l /usr/bin/pip* 安装开发软件

在master节点使用root用户

安装IPython pip3 install ipython 安装数据分析的常用库 pip3 install matplotlib pip3 install numpy pip3 install PyMySQL pip3 install PrettyTable mkdir /home/hadoop/code/lib/ wget -O /home/hadoop/code/lib/echarts.js http://echarts.baidu.com/dist/echarts.js 安装Spyder [5] cd /home/hadoop/ wget https://files.pythonhosted.org/packages/e5/e2/cc0dff05e9fd98799f9255809e8359bc05d62c4ff850b1f7cf22d3d662c0/spyder-3.3.4.tar.gz cp ./spyder-3.3.4.tar.gz /usr/local cd /usr/local tar -xzvf ./spyder-3.3.4.tar.gz cd ./spyder-3.3.4 python3 setup.py install ln -s /usr/local/spyder-3.3.4/scripts/spyder3 /usr/bin/spyder3

在master节点使用hadoop用户

打开Spyder spyder3

使用Python编写一个WordCount示例

在master节点使用hadoop用户

下载几部英文小说 cd ~/data/ wget https://files.cnblogs.com/files/connect/novel.tar.gz tar -xzvf novel.tar.gz

将文本文件上传到HDFS hdfs dfs -mkdir /data/novel hdfs dfs -put /home/hadoop/data/novel/*.txt /data/novel/ hdfs dfs -ls /data/novel/

编写mapper.py [6] #!/usr/bin/python3 #path:/home/hadoop/code/mapper.py import sys for line in sys.stdin: line = line.strip() words = line.split() for word in words: print("%s\t%s" % (word, 1)) pass 编写reducer.py [6] #!/usr/bin/python3 #path:/home/hadoop/code/reducer.py import sys current_word = None current_count = 0 word = None for line in sys.stdin: line = line.strip() word, count = line.split('\t', 1) try: count = int(count) except ValueError: continue if current_word == word: current_count += count else: if current_word: print("%s\t%s" % (current_word, current_count)) current_count = count current_word = word if word == current_word: print("%s\t%s" % (current_word, current_count)) pass 给Python程序赋予可执行权限 chmod +x /home/hadoop/code/*.py 调用集群进行计算 [6] hadoop jar /home/hadoop/hadoop-*/share/hadoop/tools/lib/hadoop-streaming-2.5.2.jar \ -file /home/hadoop/code/mapper.py \ -file /home/hadoop/code/reducer.py \ -mapper /home/hadoop/code/mapper.py \ -reducer /home/hadoop/code/reducer.py \ -input /data/novel/* \ -output /data/result/ 查看HDFS上的结果 hdfs dfs -ls /data/result hdfs dfs -cat /data/result/part-*

将HDFS上的结果下载到本地 cd ~/data mkdir ./result hdfs dfs -get /data/result/part-* /home/hadoop/data/result/ cat /home/hadoop/data/result/part-* | more

将数据加载至Hive

进入hive,将数据加载至hive,然后统计top20高频词

-- 创建数据库 create database if not exists wordcount_data; -- 使用wordcount_data数据库 use wordcount_data; -- 创建数据表 create table if not exists wordcount1 ( word string, count int ) row format delimited fields terminated by '\t' stored as textfile; -- 加载数据 load data inpath '/data/result/' overwrite into table wordcount_data.wordcount1; -- 查询TOP20高频词 select * from wordcount_data.wordcount1 order by count desc limit 20; -- 将TOP20高频词导入新的数据表 create table if not exists wordcount1_top20 as select word, count from wordcount_data.wordcount1 order by count desc limit 20; -- 查看wordcount1_top20数据表中的数据 select * from wordcount1_top20 where true;

查询结果

创建MySQL数据表

进入MySQL数据库

mysql -uhadoop -phadoop

创建MySQL数据库

-- 创建数据库 create database if not exists wordcount_data; -- 使用wordcount_data use wordcount_data; -- 创建数据表 create table if not exists wordcount1_top20 ( word varchar(128), count int )default -- 查看创建的数据表 show tables; 利用Sqoop将数据导出至MySQL

master节点执行导出操作 [7]

sqoop export \ --connect jdbc:mysql://192.168.204.101:3306/wordcount_data \ --username hadoop \ --password hadoop \ --table wordcount1_top20 \ --export-dir "/user/hive/warehouse/wordcount_data.db/wordcount1_top20" \ --fields-terminated-by '\001'

导出成功如图

查看MySQL数据库

use wordcount_data; show tables; select * from wordcount1_top20 where 1;

使用matplotlib生成图表 [8]

程序如下:

#!/usr/bin/python3 import pymysql import numpy as np import matplotlib.pyplot as plt # get data from mysql def get_data(): db = pymysql.connect('192.168.204.101', 'hadoop', 'hadoop', 'wordcount_data') sql = 'select * from wordcount1_top20 where 1 order by count desc limit 20;' cursor = db.cursor() length = cursor.execute(sql) data = cursor.fetchall() db.close() data = np.array(data) data = data.T return data # show chart def show_chart(data): labels, sizes = data[0], data[1] fig1, ax1 = plt.subplots() ax1.pie(sizes, labels=labels, autopct='%1.1f%%', shadow=True, startangle=90) ax1.axis('equal') plt.show() if __name__ == '__main__': data = get_data() show_chart(data)

效果如下

参考资料 [1] 阿里巴巴开源镜像站. https://opsx.alibaba.com/mirror [2] 更换pip源到国内镜像. https://blog.csdn.net/chenghuikai/article/details/55258957 [3] 关于hive异常:Unable to instantiate org.apache.hadoop.hive.ql.metadata.SessionHiveMetaStor. https://blog.csdn.net/hhj724/article/details/79094138 [4] linux-Centos7安装python3并与python2共存. https://www.cnblogs.com/blogjun/articles/8063989.html [5] spyder · PyPI. https://pypi.org/project/spyder/ [6] Writing An Hadoop MapReduce Program In Python. http://www.michael-noll.com/tutorials/writing-an-hadoop-mapreduce-program-in-python/ [7] sqoop导出hive数据到mysql错误ava.util.NoSuchElementException解决办法. https://blog.csdn.net/wangmuming/article/details/25296697 [8] Basic pie chart — Matplotlib 3.0.3 documentation. https://matplotlib.org/gallery/pie_and_polar_charts/pie_features.html

本文链接: https://www.cnblogs.com/connect/p/hadoop-python-dev-env.html



【本文地址】


今日新闻


推荐新闻


    CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3